package com.yupi.yuoj.model.entity;


import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.Date;
import lombok.Data;
@TableName(value ="user")
@Data
public class User implements Serializable {
    
    private static final long serialVersionUID = 1L;
    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 账号
     */
    private String userAccount;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 密码
     */
    private String userPassword;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 微信开放平台id
     */
    private String unionId;

    /**
     * 公众号openId
     */
    private String mpOpenId;

    /**
     * 用户昵称
     */
    private String userName;

    /**
     * 用户头像
     */
    private String userAvatar;

    /**
     * 用户简介
     */
    private String userProfile;

    /**
     * 公司
     */
    private String company;

    /**
     * 职位
     */
    private String position;

    /**
     * 地址
     */
    private String location;

    /**
     * 个人网站
     */
    private String website;

    /**
     * GitHub链接
     */
    private String githubUrl;

    /**
     * 微博链接
     */
    private String weiboUrl;

    /**
     * 掘力值
     */
    private Integer juejinPower;

    /**
     * 粉丝数
     */
    private Integer followerCount;

    /**
     * 关注数
     */
    private Integer followingCount;

    /**
     * 文章数
     */
    private Integer articleCount;

    /**
     * 文章总阅读数
     */
    private Long viewCount;

    /**
     * 文章总点赞数
     */
    private Long likeCount;

    /**
     * 用户等级
     */
    private Integer level;

    /**
     * 会员等级
     */
    private String memberLevel;

    /**
     * 会员经验值
     */
    private Integer memberExp;

    /**
     * 升级所需经验值
     */
    private Integer memberExpNext;

    /**
     * 会员类型：0免费版 1月度会员 2年度会员 3终身会员
     */
    private Integer memberType;

    /**
     * 会员开始时间
     */
    private Date memberStartTime;

    /**
     * 会员到期时间
     */
    private Date memberExpireTime;

    /**
     * 会员特权列表
     */
    private Object memberPrivileges;

    /**
     * 会员徽章列表
     */
    private Object memberBadges;

    /**
     * 状态：1正常 2禁用 3删除
     */
    private Integer status;

    /**
     * 邮箱是否验证
     */
    private Integer emailVerified;

    /**
     * 手机是否验证
     */
    private Integer phoneVerified;

    /**
     * 用户角色：user/admin/ban
     */
    private String userRole;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否删除
     */
    private Integer isDelete;

    /**
     * 最后登录时间
     */
    private Date lastLogin;

    // 手动添加getId方法以解决编译问题
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUserRole() {
        return userRole;
    }

    public void setUserRole(String userRole) {
        this.userRole = userRole;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Integer getPhoneVerified() {
        return phoneVerified;
    }

    public void setPhoneVerified(Integer phoneVerified) {
        this.phoneVerified = phoneVerified;
    }
}